package cn.iocoder.yudao.webapp;

import com.baomidou.mybatisplus.core.toolkit.AES;

/**
 * <pre>
 * OOoO0OOoO0OOOooo0oOOOO0OOOOO0oooOO0ooOOO0Ooooo0OOOOo0ooooO0OOooo0Ooooo0OOOOO
 * MyBatis-Plus 针对YAML配置中的敏感信息提供了保护功能，旨在防止敏感信息泄露。
 * 1、运行本方法获取随机密钥和加密值（使用 AES 对称加密算法，随机秘钥如：wjMJdyC2SPZyrzsl）。
 * 2、把加密串填写在配置文件中（每个加密串加上“mpw:”前缀，便于 MyBatis-Plus 识别）。
 * 3、在 IDE 中添加程序实参，如“--mpw.key=wjMJdyC2SPZyrzsl”，部署到服务器则指定成环境变量。
 * OOoO0OOoO0OOOooo0oOOOO0OOOOO0oooOO0ooOOO0Ooooo0OOOOo0ooooO0OOooo0Ooooo0OOOOO
 * </pre>
 *
 * @link <a href="https://baomidou.com/guides/security/#yml-%E9%85%8D%E7%BD%AE%E5%8A%A0%E5%AF%86">Mybatis-Plus YML 配置加密</a>
 * @author 山野羡民（1032694760@qq.com）
 * @since 2025/04/06
 */
public class MybatisPlusEncryptor {

    public static void main(String[] args) {
        // 生成随机密钥
        //String randomKey = AES.generateRandomKey();
        String randomKey = "wjMJdyC2SPZyrzsl";
        System.out.println("AES 随机秘钥：" + randomKey);
        // 对数据库名称、用户、密码等进行加密
        String databaseNameEncrypt = AES.encrypt("mdycjt", randomKey);
        String userNameEncrypt = AES.encrypt("mdycjt", randomKey);
        String passwordEncrypt = AES.encrypt("mdycjt@#", randomKey);
        System.out.println("数据库名称加密：" + databaseNameEncrypt);
        System.out.println("数据库用户加密：" + userNameEncrypt);
        System.out.println("数据库密码加密：" + passwordEncrypt);
    }

}